const express = require("express");
const moment = require("moment");
const {cors} = require("./middleware");
const contextListC = require("./Db/collections/contextList");

const app = express();
app.use(express.json());// 将格式为application/json的请求体数据放置到req.body中
app.use(cors());
// 添加微博
app.post("/weibo",async (req,res)=>{
	/*思路：伪代码
	* 1- 接收数据 context
	* 2- 在数据库中判断是否拥有相同的微博内容
	*    2-1：存在：给予响应-您提交的数据已经存在，请不要重复提交！
	*    2-2：不存在：
	* 		2-2-1：整理往数据库中添加的数据
	* 		2-2-2：往数据库中添加，并给予响应
	* */
	try{
		const {context} = req.body;
		// 获取与接收的微博内容相同的文档条数
		const count = await contextListC.count({context});
		if(count === 0){
			// 文档不存在
			await contextListC.insertOne({
				context,// 微博内容
				addTime:moment().format("YYYY-MM-DD HH:mm:ss")
			});
			res.json({
				ok:1,
				msg:"添加成功"
			})
		}else{
			// 存在
			res.json({
				ok:-1,
				msg:"您提交的数据已经存在，请不要重复提交！"
			})
		}
	}catch (err){
		res.json({
			ok:-1,
			msg:"异常:"+err.message
		})
	}
});
// 获取微博
app.get("/weibo",async (req,res)=>{
	try{
		console.log(1111111)
		/*
		* 思路：
		* 1- 接收数据
		* 2- 数据库获取数据
		* 3- 响应结果*/
		let {pageNo=1,pageSize=3} = req.query;
		pageNo = pageNo/1;
		pageSize = pageSize/1;
		if(pageNo<1) pageNo = 1;
		// 总条数
		const count = await contextListC.count();
		// 总页码
		let pageSum = Math.ceil(count/pageSize);
		if(pageSum<1) pageSum = 1;
		if(pageNo>pageSum) pageNo = pageSum;
		// 获取微博列表
		const contextList = await contextListC.find({
			sortObj:{
				addTime:-1
			},
			skip:(pageNo-1)*pageSize,
			limit:pageSize
		});
		res.json({
			ok:1,
			msg:"获取成功",
			contextList,
			pageSum,
			pageNo
		})
	}catch (err){
		console.log(err);
		res.json({
			ok:-1,
			msg:"异常:"+err.message
		})
	}
})
app.listen(80,()=>{
	console.log("success");
})